﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace sy2_7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnCalculate_Click(object sender, EventArgs e)
        {
            double sum = 1.0; // 第一项为 1/1，作为初始累加值
            int n = 1; // 总项数，初始为 1（第一项）
            int denominator = 1; // 分母的初始值
            int diff = 1; // 前后两项分母的差值初始为 1

            string termsText = "1"; // 存储前 10 项及“…”的文本，初始为第一项“1”

            int termCount = 1; // 记录当前是第几项，用于控制前 10 项的显示

            while (true)
            {
                denominator += diff; // 计算下一项的分母
                diff++; // 差值递增

                double currentTerm = 1.0 / denominator; // 当前项的值

                if (currentTerm < 1e-4) // 如果当前项小于 10⁻⁴，结束循环
                {
                    break;
                }

                sum += currentTerm; // 累加当前项到总和
                n++; // 总项数加 1

                termCount++;
                if (termCount <= 10) // 只显示前 10 项
                {
                    termsText += " + 1/" + denominator;
                }
                else if (termCount == 11) // 第 11 项时添加“…”
                {
                    termsText += " + …";
                }
            }

            // 显示结果
            txtTerms.Text = termsText;
            txtSum.Text = sum.ToString();
            txtN.Text = n.ToString();
        }
    }
}
